package com.haixiaoke.saas.maintenance.mapper;

import com.haixiaoke.saas.maintenance.domain.MaintenanceItem;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 维修项目信息Mapper接口
 *
 * @author xiaolong
 * @date 2024-09-03
 */
public interface MaintenanceItemMapper {
    /**
     * 查询维修项目信息
     *
     * @param maintenanceItemId 维修项目信息主键
     * @return 维修项目信息
     */
    MaintenanceItem selectMaintenanceItemByMaintenanceItemId(Long maintenanceItemId);

    /**
     * 查询维修项目信息列表
     *
     * @param maintenanceItem 维修项目信息
     * @return 维修项目信息集合
     */
    List<MaintenanceItem> selectMaintenanceItemList(MaintenanceItem maintenanceItem);

    /**
     * 新增维修项目信息
     *
     * @param maintenanceItem 维修项目信息
     * @return 结果
     */
    int insertMaintenanceItem(MaintenanceItem maintenanceItem);

    /**
     * 修改维修项目信息
     *
     * @param maintenanceItem 维修项目信息
     * @return 结果
     */
    int updateMaintenanceItem(MaintenanceItem maintenanceItem);

    /**
     * 删除维修项目信息
     *
     * @param maintenanceItemId 维修项目信息主键
     * @return 结果
     */
    int deleteMaintenanceItemByMaintenanceItemId(Long maintenanceItemId);

    /**
     * 批量删除维修项目信息
     *
     * @param maintenanceItemIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteMaintenanceItemByMaintenanceItemIds(Long[] maintenanceItemIds);

    /**
     * 根据租户ID和维修项目名称查询维修项目信息
     *
     * @param tenantId 租户ID
     * @param maintenanceItemName 维修项目名称
     * @return 维修项目信息
     */
    MaintenanceItem selectMaintenanceItemByTenantIdAndMaintenanceItemName(@Param("tenantId") String tenantId, @Param("maintenanceItemName") String maintenanceItemName);

    /**
     * 根据楼盘id查询维修项目信息和公开信息
     *
     * @param maintenanceItem 维修项目信息
     * @return 维修项目信息集合
     */
    List<MaintenanceItem> selectMaintenanceItemInfo(MaintenanceItem maintenanceItem);

}
